using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using PeterInterface;
using WeifenLuo.WinFormsUI.Docking;
using System.Windows.Forms;

namespace BeHexEditor
{
    public partial class ctrlHexEdit : DockContent, IPeterPluginTab
    {
        private IPeterPluginHost m_Host;
        private Be.Windows.Forms.HexBox m_Editor;

        public ctrlHexEdit()
        {
            InitializeComponent();
            this.TabText = "Be.HexEditor";
            this.m_Editor = new Be.Windows.Forms.HexBox();
            this.m_Editor.Dock = DockStyle.Fill;
            this.Controls.Add(this.m_Editor);
        }

        #region IPeterPluginTab Members

        public bool AbleToCopy
        {
            get { return true; }
        }

        public bool AbleToCut
        {
            get { return true; }
        }

        public bool AbleToDelete
        {
            get { return true; }
        }

        public bool AbleToPaste
        {
            get { return true; }
        }

        public bool AbleToRedo
        {
            get { return false; }
        }

        public bool AbleToSave
        {
            get { return true; }
        }

        public bool AbleToSelectAll
        {
            get { return true; }
        }

        public bool AbleToUndo
        {
            get { return false; }
        }

        public bool CloseTab()
        {
            this.Close();
            return true;
        }

        public void Copy()
        {
        }

        public void Cut()
        {
        }

        public void Delete()
        {
        }

        public string FileName
        {
            get { return ""; }
        }

        public void FindNext(System.Text.RegularExpressions.Regex reg)
        {
        }

        public IPeterPluginHost Host
        {
            get
            {
                return this.m_Host;
            }
            set
            {
                this.m_Host = value;
            }
        }

        public void MarkAll(System.Text.RegularExpressions.Regex reg)
        {
        }

        public bool NeedsSaving
        {
            get { return false; }
        }

        public void Paste()
        {
        }

        public void Print()
        {
        }

        public void Redo()
        {
        }

        public void ReplaceAll(System.Text.RegularExpressions.Regex reg, string replaceWith)
        {
        }

        public void ReplaceNext(System.Text.RegularExpressions.Regex reg, string replaceWith)
        {
        }

        public void Save()
        {
        }

        public void SaveAs(string filePath)
        {
        }

        public void SelectAll()
        {
        }

        public void SelectWord(int line, int offset, int wordLeng)
        {
        }

        public string Selection
        {
            get { return ""; }
        }

        public void Undo()
        {
        }

        #endregion
    }
}